package hcn.protocol.brandnew.dengji.menzhenyuyue;

import lombok.Data;
import javax.xml.bind.annotation.*;
import java.util.List;
import hcn.protocol.brandnew.BaseRequest;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import ctd.util.xml.jaxb.DateTimeAdapter;
import org.atag.sysrouter.annotation.DictionaryMapping;

import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;


/**
 * 号源排班信息查询-消息请求 - ODS_02040004
 *
 * @author enjoyLife
 */
@Data
@XmlRootElement(name = "MsgBody")
@XmlAccessorType(XmlAccessType.FIELD)
public class ListNumberRequest extends BaseRequest {

    /**
     * 请求参数集
     */
    @XmlElement(name = "Query")
    private Query query;

    @Data
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class Query {

        /**
         * 医疗机构组织机构代码
         */
        @XmlElement(name = "VisitOrganization")
        private String visitOrganization;
        /**
         * 挂号科室代码
         */
        @XmlElement(name = "DeptCode")
        private String deptCode;
        /**
         * 挂号科室名称
         */
        @XmlElement(name = "DeptName")
        private String deptName;
        /**
         * 资源级别代码
         */
        @DictionaryMapping("hcn.registration.resourceLevelCode")
        @XmlElement(name = "ResourceLevelCode")
        private String resourceLevelCode;
        /**
         * 资源级别描述
         */
        @XmlElement(name = "ResourceLevelName")
        private String resourceLevelName;
        /**
         * 出诊医生医护人员工号
         */
        @XmlElement(name = "DoctorCode")
        private String doctorCode;
        /**
         * 出诊医生身份证号
         */
        @XmlElement(name = "DoctorIdCard")
        private String doctorIdCard;
        /**
         * 出诊医生姓名
         */
        @XmlElement(name = "DoctorName")
        private String doctorName;
        /**
         * 就诊日期时间
         */
        @XmlElement(name = "VisitDate")
        @XmlJavaTypeAdapter(DateTimeAdapter.class)
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date visitDate;
        /**
         * 医师排班类别代码
         */
        @DictionaryMapping("hcn.base.dictionary.HCN_outpatientSchedulingService")
        @XmlElement(name = "DoctorDutyType")
        private String doctorDutyType;
        /**
         * 资源池类型
         */
        @XmlElement(name = "OutpatientType")
        private Byte outpatientType;
        /**
         * 医生排班流水号（排班标识）
         */
        @XmlElement(name = "ScheduleMark")
        private String scheduleMark;
        /**
         * 资源类型代码
         */
        @XmlElement(name = "ResourceTypeCode")
        private String resourceTypeCode;
        /**
         * 资源类型描述
         */
        @XmlElement(name = "ResourceTypeName")
        private String resourceTypeName;
    }

}
